#ifndef __RST_CFG_H__
#define __RST_CFG_H__

#ifdef __cplusplus
extern "C" {
#endif

#define RST_USING_RTTHREAD 0
#define RST_USING_TENONOS 1
#define RST_USING_ZEPHYR 0

#define RST_LOGD_EN 0
#define RST_LOGE_EN 1
#define RST_LOGI_EN 1

#define RST_TIMT_UNIT_COUNTER 1
#define RST_TIME_UNIT_NS 0

#define RST_BENCHMARKS_COUNT 500

#if RST_USING_RTTHREAD
#define RST_BIG_NUM_HIGH_PRIORITY 0

#define RST_TASK_HIGHEST_PRIORITY 0

#define RST_TASK_LOWEST_PRIORITY 32

#define RST_TASK_STACK_SIZE (4096)

#define RST_ISR_NUM 45

#elif RST_USING_TENONOS
#define RST_BIG_NUM_HIGH_PRIORITY           1

#define RST_TASK_HIGHEST_PRIORITY 255

#define RST_TASK_LOWEST_PRIORITY 1

#define RST_TASK_STACK_SIZE (4096)

#define RST_ISR_NUM 5

#elif RST_USING_ZEPHYR
#define RST_BIG_NUM_HIGH_PRIORITY 0

#define RST_TASK_HIGHEST_PRIORITY 0

#define RST_TASK_LOWEST_PRIORITY 15

#define RST_TASK_STACK_SIZE (1024)

#define RST_ISR_NUM 5

#else

#endif

#ifndef PKG_USING_R_RHEALSTONE_TASK_SWITCH
    #define PKG_USING_R_RHEALSTONE_TASK_SWITCH
#endif

#ifndef PKG_USING_R_RHEALSTONE_TASK_PREEMPT
    #define PKG_USING_R_RHEALSTONE_TASK_PREEMPT
#endif

#ifndef PKG_USING_R_RHEALSTONE_SEMAPHORE_SHUFFLE
    #define PKG_USING_R_RHEALSTONE_SEMAPHORE_SHUFFLE
#endif

#ifndef PKG_USING_R_RHEALSTONE_MESSAGE_LATENCY
    #define PKG_USING_R_RHEALSTONE_MESSAGE_LATENCY
#endif

#ifndef PKG_USING_R_RHEALSTONE_INTERRUPT_LATENCY
    #define PKG_USING_R_RHEALSTONE_INTERRUPT_LATENCY
#endif

#ifndef PKG_USING_R_RHEALSTONE_SET_TIMER_OFFSET
    #define PKG_USING_R_RHEALSTONE_SET_TIMER_OFFSET
#endif

#ifdef __cplusplus
}
#endif

#endif
